package br.com.sga.modelo.entidade;

import br.com.sga.erro.ObjetoInvalidoException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class Usuario{

    private Integer id;
    private Integer status;
    private String login;
    private String senha;
    private String nome;
    private Date dtAtualizacao = new Date();
    private Map<String, Perfil> perfis = new HashMap<>(0);

    public Usuario() {
        super();
    }

    @Override
    public String toString() {
        return this.getNome();
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Boolean isValido() throws ObjetoInvalidoException {
        if (this.getLogin() == null || this.getNome() == null) {
            throw new ObjetoInvalidoException();
        }
        return true;
    }

    public Map<String, Perfil> getPerfis() {
        return perfis;
    }

    protected void setPerfis(Map<String, Perfil> perfis) {
        this.perfis = (HashMap<String, Perfil>) perfis;
    }

    public Perfil getPerfil(String sistema) {
        return perfis.get(sistema);
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getDtAtualizacao() {
        return dtAtualizacao;
    }

    public void setDtAtualizacao(Date dtAtualizacao) {
        this.dtAtualizacao = dtAtualizacao;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
}
